package cn.kone.remote.impl;

import cn.kone.pojo.DriverPoint;
import cn.kone.remote.api.BigdataFeignApi;
import cn.kone.remote.result.DriverPointResult;
import cn.kone.result.JSONResult;
import cn.kone.service.IDriverPointService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.stream.Collectors;


@RestController
public class BigdataFeignImpl implements BigdataFeignApi {
    @Autowired
    private IDriverPointService driverPointService;

    @Override
    public JSONResult<List<DriverPointResult>> getPoints(String orderNo) {
        List<DriverPoint> driverPoints = driverPointService.selectByOrderNo(orderNo); // 根据订单号查询司机位置信息
        if (driverPoints != null) {// 如果查询结果不为空
            // 使用流式操作将司机位置信息转换成 DriverPointResult 对象，并放入列表中
            List<DriverPointResult> driverPointResultList = driverPoints.stream().map((p) -> {
                return new DriverPointResult(p.getId(), p.getLatitude(), p.getLongitude(), p.getDriverId(), p.getOrderNo());
            }).collect(Collectors.toList());
            // 返回成功的 JSON 结果，包含司机位置信息列表
            return JSONResult.success(driverPointResultList);
        }

// 如果查询结果为空，也返回一个成功的 JSON 结果，但不包含数据
        return JSONResult.success();
    }
}
